package xrate

import (
	"time"

	"gitee.com/xiaoyutab/xgotool/xerror"
	"gorm.io/gorm"
)

// 创建用户中奖记录信息
//
//	u	中奖记录信息
func UserCreate(u *User) error {
	if u.UserId == 0 {
		return xerror.New("用户未登录")
	}
	if u.StartID == 0 {
		return xerror.New("中奖星级不能为空")
	}
	if u.ProjectID == 0 {
		return xerror.New("中奖产品不能为空")
	}
	if u.BatchId == 0 {
		return xerror.New("中奖批次不能为空")
	}
	u.UpdatedAt = time.Now().Format(time.DateTime)
	if u.CreatedAt == "" {
		u.CreatedAt = time.Now().Format(time.DateTime)
	}
	// 记录添加
	err := _default.DB.Save(u).Error
	if err != nil {
		return err
	}
	// 库存扣除
	err = _default.DB.Table(_default.ProjectName).Where("id", u.ProjectID).Update("residue", gorm.Expr("residue - ?", 1)).Error
	if err != nil {
		return err
	}
	return nil
}
